package com.xgure.mapper;

import com.github.pagehelper.Page;
import com.xgure.annotation.Autofill;
import com.xgure.dto.ProductQueryDTO;
import com.xgure.dto.ProductUpdateDTO;
import com.xgure.enumerator.AutofillEnum;
import com.xgure.pojo.Product;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface ProductMapper {

    /**
     * 添加新的商品
     *
     */
    @Autofill(AutofillEnum.INSERT)
    void add(Product product);

    /**
     * 更新商品信息
     *
     */
    @Autofill(AutofillEnum.UPDATE)
    void update(ProductUpdateDTO productUpdateDTO);

    /**
     * 获取当前店铺的所有商品
     *
     * @return 商品列表
     */
    Page<Product> list(ProductQueryDTO productQueryDTO);

    /**
     * 根据商品名获取商品信息
     *
     */
    Page<Product> getByName(@Param("productName") String productName, @Param("shopId") Long shopId);

    /**
     * 根据商品id删除商品
     *
     */
    @Delete("delete from product where id = #{id}")
    void deleteById(Long id);
}
